var express = require('express');
var router = express.Router();
var Product = require('./../sql/col/products'); // 产品的集合
var sql = require('./../sql'); // 引入数据库操作模块

/**
 * @api {get} api/product 获取列表的数据
 * @apiDescription 获取列表的数据，可以传递不同的参数以获取数据
 * @apiGroup product
 * @apiParam { number } limit 每页显示个数（默认值10）
 * @apiParam { number } count 页码（默认值0）
 * @apiParam { number } type 类型
 * @apiSuccessExample { json } Success-Response:
 * {
 *  code: '200',
 *  message: '获取产品列表数据',
 *  data: []
 * }
 * @apiSampleRequest /api/product
 * @apiVersion 1.0.0
 */
router.get('/', function(req, res, next) {
  // 不管是get还是post 获取到的参数都是字符串，需要转换
  let limit = req.query.limit * 1 || 10
  let count = req.query.count * 1 || 0
  let type = req.query.type

  sql.paging(Product, { type }, { _id: 0 }, limit, count).then((data) => {
    res.send({
      code: '200',
      message: '获取产品列表数据',
      len: data.length, // 告诉用户请求了多少条数据
      data: data
    });
  })
  
});

/**
 * @api {get} api/product/detail 获取产品的详情数据
 * @apiDescription 获取产品的详情数据
 * @apiGroup product
 * @apiParam { string } productid 产品id
 * @apiSuccessExample { json } Success-Response:
 *  {
 *    code: '200',
 *    message: '获取详情的数据',
 *    data: data[0]
 *  }
 *  {
 *    code: '10404', // 10404 状态码自己编辑，随便设定
 *    message: '没有查询到该产品相关数据'
 *  }
 * @apiSampleRequest /api/product/detail
 * @apiVersion 1.0.0
 */
router.get('/detail', (req, res, next) => {
  // 1. 获取产品的唯一值参数
  const { productid } = req.query; // es6解构赋值
  // 2.依据 productid 查询数据库
  sql.find(Product, { productid }, { _id: 0 }).then(data => {
    // 3.判断有没有数据
    data.length > 0 ? res.send({
      code: '200',
      message: '获取详情的数据',
      data: data[0]
    }) : res.send({
      code: '10404', // 10404 状态码自己编辑，随便设定
      message: '没有查询到该产品相关数据'
    })
  })
})




module.exports = router;